/**
 *    Copyright (C) 2015 Deco Software Inc.
 *
 *    This program is free software: you can redistribute it and/or modify
 *    it under the terms of the GNU Affero General Public License, version 3,
 *    as published by the Free Software Foundation.
 *
 *    This program is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU Affero General Public License for more details.
 *
 *    You should have received a copy of the GNU Affero General Public License
 *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 */

import React, { Component } from 'react'

export default class CheckboxInput extends Component {

  static propTypes = {
    onChange: React.PropTypes.func.isRequired,
    value: React.PropTypes.bool.isRequired,
    disabled: React.PropTypes.bool,
  }

  static defaultProps = {
    className: '',
    style: {},
    disabled: false,
  }

  onInputChange = (e) => this.props.onChange(! this.props.value)

  render() {
    const {className, disabled, value, onContextMenu} = this.props

    return (
      <input
        className={className}
        type={'checkbox'}
        disabled={disabled}
        checked={value}
        onChange={this.onInputChange}
        onContextMenu={onContextMenu}
      />
    )
  }

}
